This file is part of the supplementary material of the manuscript: Didino, D., Brandtner, M., & Knops, A. (2021). No influence of masked priming on the multiplication fact retrieval in a result verification task.

This script reports the analysis for experiment 1.

Dataset loaded: exp1_data.rds (data of result verification task)

Load libraries, my functions (my_functions folder) and data (data/processed folder):

library('ggpubr')
#> Loading required package: ggplot2
library('here')
#> here() starts at D:/mult_prime
library('kableExtra')
# library('knitr')
library('plotly')
#> 
#> Attaching package: 'plotly'
#> The following object is masked from 'package:ggplot2':
#> 
#>     last_plot
#> The following object is masked from 'package:stats':
#> 
#>     filter
#> The following object is masked from 'package:graphics':
#> 
#>     layout
library('ggridges')
library('tidyverse')
#> -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
#> v tibble  3.1.0     v dplyr   1.0.5
#> v tidyr   1.1.3     v stringr 1.4.0
#> v readr   1.4.0     v forcats 0.5.1
#> v purrr   0.3.4
#> -- Conflicts ------------------------------------------ tidyverse_conflicts() --
#> x dplyr::filter()     masks plotly::filter(), stats::filter()
#> x dplyr::group_rows() masks kableExtra::group_rows()
#> x dplyr::lag()        masks stats::lag()
library('BayesFactor')
#> Loading required package: coda
#> Loading required package: Matrix
#> 
#> Attaching package: 'Matrix'
#> The following objects are masked from 'package:tidyr':
#> 
#>     expand, pack, unpack
#> ************
#> Welcome to BayesFactor 0.9.12-4.2. If you have questions, please contact Richard Morey (richarddmorey@gmail.com).
#> 
#> Type BFManual() to open the manual.
#> ************

# Load my functions
source(here('funcs', 'load_my_functions.R'))

# Load data
exp1 <- readRDS(here('data', 'processed', 'exp1_data.rds'))

Exclude outliers

exp1 <- 
  exp1 %>% 
  filter(outlier == FALSE)

RTs plots

RTs distribution across prime conditions:

plot_1 <-
  exp1 %>% 
  ggplot(aes(RT, fill = prime_cond)) +
  geom_density(alpha = 0.6) +
  facet_wrap(~ problem_size, ncol = 2) 

ggplotly(plot_1)

Comparison between the distribution of the RTs of the neutral condition and the other conditions. The neutral condition is replicated next to each condition to facilitate the comparison.

exp1_rainplot <- 
  exp1 %>% 
  return_means(RT, c('problem_size', 'sj', 'prime_cond'), .) %>% 
  return_df_plot(problem_size,
                 prime_cond,
                 'neutral')
#> `summarise()` has grouped output by 'problem_size', 'sj'. You can override using the `.groups` argument.
#> Joining, by = c("sj", "DV", "neutral")
#> Joining, by = c("sj", "DV", "neutral")
#> Joining, by = c("sj", "DV", "neutral")
#> Joining, by = c("sj", "DV", "neutral")
#> Joining, by = c("sj", "DV", "neutral")
#> Joining, by = c("sj", "DV", "neutral")
#> Joining, by = c("sj", "DV", "neutral")
#> Joining, by = c("sj", "DV", "neutral")
#> Joining, by = c("sj", "DV", "neutral")
#> Joining, by = c("sj", "DV", "neutral")

# Set H0/H1 position
segs <- 
  tribble(
    ~problem_size, ~cond,       ~neutral,        ~lab, ~ys,
    'Large',       'identity',  'Neutral', 'H1', 950,
    'Large',       'neigh_inc', 'Neutral', 'H1', 950,
    'Large',       'unrel_con', 'Neutral', 'H0', 950,
    'Large',       'unrel_inc', 'Neutral', 'H1', 950,
    'Small',       'identity',  'Neutral', 'H1', 950,
    'Small',       'neigh_inc', 'Neutral', 'H1', 950,
    'Small',       'unrel_con', 'Neutral', 'H1', 950,
    'Small',       'unrel_inc', 'Neutral', 'H1', 950)

# Plot
prime_plot <- 
 list(exp1_RT_distr =
        exp1_rainplot %>% 
        mutate(
          neutral = if_else(neutral == 'neutral', 'Neutral', 'Other'),
          problem_size = if_else(problem_size == 'large', 'Large', 'Small')
          ) %>% 
        ggplot(aes(x = cond, y = DV, fill = neutral)) +
        geom_flat_violin(aes(fill = neutral),
                         position = position_nudge(x = 0.18, y = 0),
                         adjust = 1.5,
                         trim = FALSE,
                         alpha = .5,
                         colour = NA) +
        geom_point(aes(x = as.numeric(factor(cond)) - 0.23, y = DV, colour = neutral),
                   position = position_jitter(width = 0.05, height = 0),
                   size = 1,
                   shape = 20) +
        geom_boxplot(aes(x = cond, y = DV, fill = neutral),
                     outlier.shape = NA,
                     alpha = 0.5,
                     width = 0.3,
                     colour = 'black') +
        geom_text(data = segs,
                  aes(x = cond,  y = ys, label = lab),
                  size = 3.5) + 
        geom_vline(xintercept = c(c(0:3) + 1.65),
                   linetype = 'solid',
                   color = 'grey80',
                   size = 0.3) +
        # scale_colour_brewer(palette = 'Dark2') +
        # scale_fill_brewer(palette = 'Dark2') +
        labs(x = 'Prime condition', y = 'RTs') +
        facet_wrap(~ problem_size, ncol = 1, strip.position = 'right') +
        theme(
          #panel.grid.major = element_blank(),
          #panel.grid.minor = element_blank(),
          panel.background = element_blank(),
          panel.grid.major.y = element_line(colour = 'grey90'),
          panel.grid.minor.y = element_line(colour = 'grey90'),
          panel.grid.major.x = element_blank(),
          panel.grid.minor.x = element_blank(),
          legend.title = element_blank(),
          strip.background = element_blank(),
          text = element_text(size = 15),
          axis.text = element_text(size = 12, colour = 'black'),
          axis.text.x = element_text(angle = 45, hjust = 1),
          # axis.title = element_text(size = 14),
          panel.border = element_rect(colour = 'black', fill = NA, size = 0.5)
        )
 )

# show plot
prime_plot$exp1_RT_distr

# Plot - Black and white version
prime_plot$exp1_RT_distr_bw <- 
  exp1_rainplot %>% 
  mutate(
    neutral = if_else(neutral == 'neutral', 'Neutral', 'Other'),
    problem_size = if_else(problem_size == 'large', 'Large', 'Small')
    ) %>% 
  ggplot(aes(x = cond, y = DV, fill = neutral)) +
  geom_flat_violin(position = position_nudge(x = 0.15, y = 0),
                   adjust = 1.5,
                   trim = FALSE,
                   alpha = .5,
                   colour = 'black') +
  geom_point(aes(x = as.numeric(factor(cond)) - 0.2, y = DV),
             position = position_jitter(width = 0.05, height = 0),
             size = 1,
             shape = 21) +
  geom_boxplot(outlier.shape = NA,
               alpha = 0.5,
               width = 0.25) +
  geom_text(data = segs,
            aes(x = cond,  y = ys, label = lab),
            size = 3.5) + 
  geom_vline(xintercept = c(c(0:3) + 1.65),
             linetype = 'solid',
             color = 'grey80',
             size = 0.3) +
  scale_fill_manual(values = c('white', 'grey20')) +
  scale_color_manual(values = c('white', 'grey20')) +
  labs(x = 'Prime condition', y = 'RTs') +
  facet_wrap(~ problem_size, ncol = 1, strip.position = 'right') +
  theme(
    #panel.grid.major = element_blank(),
    #panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    panel.grid.major.y = element_line(colour = 'grey90'),
    panel.grid.minor.y = element_line(colour = 'grey90'),
    panel.grid.major.x = element_blank(),
    panel.grid.minor.x = element_blank(),
    legend.title = element_blank(),
    strip.background = element_blank(),
    text = element_text(size = 15),
    axis.text = element_text(size = 12, colour = 'black'),
    axis.text.x = element_text(angle = 45, hjust = 1),
    # axis.title = element_text(size = 14),
    panel.border = element_rect(colour = 'black', fill = NA, size = 0.5)
  )

Bayes factor

Bayes factors are computer with the package BayesFactor.

tribble(
  ~BF,      ~Evidence,
  '0-3',    'Anectodal',
  '3-10',   'Moderate',
  '10-30',  'Strong',
  '30-100', 'Very_strong',
  '>100',   'Decisive') %>% 
   make_table('Bayes factor interpretation')
Bayes factor interpretation
BF Evidence
0-3 Anectodal
3-10 Moderate
10-30 Strong
30-100 Very_strong
>100 Decisive

Compute Bayes factors

exp1_bf <- 
  exp1 %>% 
  return_BF_ttest(problem_size,
                  prime_cond,
                  'neutral',
                  RT,
                  ID = 'sj')

exp1_bf
#> # A tibble: 10 x 10
#>    problem_size prime_cond.x       data.x aggr_data.x   prime_cond.y      data.y
#>    <chr>        <chr>        <list<tibbl> <list>        <chr>        <list<tibb>
#>  1 large        identity       [606 x 17] <tibble[,2] ~ neutral       [592 x 17]
#>  2 large        neigh_con      [288 x 17] <tibble[,2] ~ neutral       [592 x 17]
#>  3 large        neigh_inc      [292 x 17] <tibble[,2] ~ neutral       [592 x 17]
#>  4 large        unrel_con      [294 x 17] <tibble[,2] ~ neutral       [592 x 17]
#>  5 large        unrel_inc      [290 x 17] <tibble[,2] ~ neutral       [592 x 17]
#>  6 small        identity       [645 x 17] <tibble[,2] ~ neutral       [644 x 17]
#>  7 small        neigh_con      [317 x 17] <tibble[,2] ~ neutral       [644 x 17]
#>  8 small        neigh_inc      [314 x 17] <tibble[,2] ~ neutral       [644 x 17]
#>  9 small        unrel_con      [302 x 17] <tibble[,2] ~ neutral       [644 x 17]
#> 10 small        unrel_inc      [315 x 17] <tibble[,2] ~ neutral       [644 x 17]
#> # ... with 4 more variables: aggr_data.y <list>, BF_test <list>, bf <dbl>,
#> #   error <dbl>

exp1_bf <- 
  exp1_bf %>%
  select(problem_size, prime_cond.x, bf) %>% 
  rename(prime_cond = prime_cond.x, BF_10 = bf) %>% 
  mutate(
    BF_01 = 1 / BF_10
  ) 

# # Print results in a file
# exp1_bf %>% 
#   mutate(across(where(is.numeric), ~round(.x, digits = 2))) %>% 
#   print_result('exp1_BF')
# 
# # Show results
# exp1_bf %>% 
#   make_table('Bayes factor')

Calculate statistics for RT

# Calculate statistics
exp1_stats <- 
  exp1 %>%
  return_stats(c('problem_size', 'prime_cond'))
#> `summarise()` has grouped output by 'sj', 'problem_size'. You can override using the `.groups` argument.
#> `summarise()` has grouped output by 'problem_size'. You can override using the `.groups` argument.

# Add difference between prime means and neutral prime mean
exp1_stats <- 
  left_join(
    exp1_stats,
    exp1_stats %>% 
      filter(prime_cond == 'neutral') %>% 
      select(problem_size, Mean) %>% 
      rename(Diff = Mean)
  ) %>% 
  mutate(
    Diff = Mean - Diff
  )
#> Joining, by = "problem_size"

# # Print results in a file
# exp1_stats %>% 
#   mutate(across(where(is.numeric), round)) %>% 
#   print_result('exp1_stats_RTs')
# 
# # Show results
# exp1_stats %>% 
#    make_table('Statistics (prime condition by problem size)')

Table 1

Table with RTs mean, standard deviation and standard error (aggregated on subject and condition), and Bayes factors:

exp1_table <- 
  full_join(
    exp1_stats %>% 
      mutate(across(where(is.numeric), ~round(.x, digits = 0))),
    exp1_bf %>% 
      mutate(across(where(is.numeric), ~round(.x, digits = 2))))
#> Joining, by = c("problem_size", "prime_cond")

# Print results in a file
exp1_table %>% 
  # mutate(across(where(is.numeric), ~round(.x, digits = 2))) %>% 
  print_result('exp1_table')

# Show results
exp1_table %>% 
   make_table('Table1')
Table1
problem_size prime_cond N_sj Mean SD SE Diff BF_10 BF_01
large identity 28 555 100 19 -43 129.00 0.01
large neigh_con 28 622 113 21 25 2.93 0.34
large neigh_inc 28 645 106 20 47 2388.08 0.00
large neutral 28 597 106 20 0 NA NA
large unrel_con 28 603 110 21 5 0.23 4.43
large unrel_inc 28 645 125 24 48 70.51 0.01
small identity 28 513 84 16 -37 203.26 0.00
small neigh_con 28 573 92 17 23 1.43 0.70
small neigh_inc 28 575 103 19 24 5.03 0.20
small neutral 28 551 88 17 0 NA NA
small unrel_con 28 600 114 22 50 334.14 0.00
small unrel_inc 28 590 109 21 40 83.18 0.01

Plot prime conditions

# Set bar colors ("neutral" is the 4th and the 10th)
bar_colors <- c('gray80', 'gray80', 'gray80', 'gray40', 'gray80', 'gray80',
                'gray80', 'gray80', 'gray80', 'gray40', 'gray80', 'gray80')

# Set H0/H1 position
segs <- 
  tribble(
    ~problem_size, ~prime_cond, ~lab, ~ys,
     'large',      'identity',  'H1', 510,
     'large',      'neigh_inc', 'H1', 510,
     'large',      'unrel_con', 'H0', 510,
     'large',      'unrel_inc', 'H1', 510,
     'small',      'identity',  'H1', 540,
     'small',      'neigh_inc', 'H1', 510,
     'small',      'unrel_con', 'H1', 510,
     'small',      'unrel_inc', 'H1', 510)

# plot prime type
prime_plot$exp1_box <- 
  exp1_stats %>% 
  mutate(
    prime_cond = factor(
      prime_cond,
      levels = c('identity', 'neutral', 'neigh_con', 'neigh_inc', 'unrel_con', 'unrel_inc')
  )) %>% 
  ggplot(aes(x = prime_cond, y = Mean, fill = prime_cond)) +
  geom_bar(stat = 'identity',
           fill = bar_colors,
           width = 0.6,
           show.legend = FALSE) +
  geom_errorbar(
    aes(group = prime_cond, ymin = Mean - SE, ymax = Mean + SE),
    width = 0.07,
    position = position_dodge(0.9)) +
  geom_text(data = segs,
            aes(x = prime_cond,  y = ys, label = lab),
            size = 3) +
  coord_cartesian(ylim = c(500, 675)) +
  labs(x = 'Prime cond', y = 'Mean RTs') +
  facet_wrap(~problem_size, ncol = 1) +
  theme(
    # panel.grid.major = element_blank(),
    # panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    panel.grid.major.y = element_line(colour = 'grey90'),
    panel.grid.minor.y = element_line(colour = 'grey90'),
    panel.grid.major.x = element_blank(),
    panel.grid.minor.x = element_blank(),
    text = element_text(size = 15),
    axis.text = element_text(size = 12, colour = 'black'),
    axis.text.x = element_text(angle = 45, hjust = 1),
    # axis.title = element_text(size = 14),
    panel.border = element_rect(colour = 'black', fill = NA, size = 0.5))

# show plot
prime_plot$exp1_box

Plot Bayes factors

# Set asterisk position
segs <- 
  tribble(
    ~problem_size, ~prime_cond, ~lab,    ~ys,
     'large',      'identity',   '>100',  95,
     'large',      'neigh_con',  '',      95,
     'large',      'neigh_inc',  '>100',  95,
     'large',      'unrel_con',  '',      95,
     'large',      'unrel_inc',  '',      95,
     'small',      'identity',   '>100',  95,
     'small',      'neigh_con',  '',      95,
     'small',      'neigh_inc',  '',      95,
     'small',      'unrel_con',  '>100',  95,
     'small',      'unrel_inc',  '',      95,
  )

# plot prime type
prime_plot$exp1_bf <- 
  exp1_bf %>% 
  mutate(
    prime_cond = factor(
      prime_cond,
      levels = c('identity', 'neigh_con', 'neigh_inc', 'unrel_con', 'unrel_inc')),
    BF_10 = case_when(
      BF_10 > 100 ~ 100,
      TRUE ~ BF_10
    )
  ) %>% 
  ggplot(aes(x = prime_cond, y = BF_10, fill = prime_cond)) +
  geom_bar(stat = 'identity',
           fill = 'gray80',
           width = 0.6,
           show.legend = FALSE) +
  geom_text(data = segs,
                  aes(x = prime_cond,  y = ys, label = lab),
                  size = 3) +
  geom_hline(yintercept = c(3, 10, 30, 100),
             linetype = 'dashed',
             color = 'red',
             size = 0.5) +
  coord_cartesian(ylim = c(0, 100)) +
  labs(x = 'Prime cond', y = bquote('Bayes factor (' ~BF[10]~ ')')) +
  facet_wrap(~problem_size, ncol = 1) +
  theme(
    #panel.grid.major = element_blank(),
    #panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    panel.grid.major.y = element_line(colour = 'grey90'),
    panel.grid.minor.y = element_line(colour = 'grey90'),
    panel.grid.major.x = element_blank(),
    panel.grid.minor.x = element_blank(),
    text = element_text(size = 15),
    axis.text = element_text(size = 12, colour = 'black'),
    axis.text.x = element_text(angle = 45, hjust = 1),
    # axis.title = element_text(size = 14),
    panel.border = element_rect(colour = 'black', fill = NA, size = 0.5))
  NULL
#> NULL

# show plot
prime_plot$exp1_bf

Frequentist t-tests

Calculate the t-tests between neutral prime and other conditions (the results are also saved in the folder results)

# prepare conditions to compare in the t-tests
prime_cond_to_comprare <- 
  list(c('identity', 'neutral'),
       c('neigh_con', 'neutral'),
       c('neigh_inc', 'neutral'),
       c('unrel_con', 'neutral'),
       c('unrel_inc', 'neutral'))


# t-tests between prime conditions
exp1_ttests <- 
  exp1 %>% 
  group_by(problem_size) %>% 
  group_nest() %>% 
  mutate(
    ttests = map(
      data,
      ~return_ttest_2samples(RT,
                             prime_cond,
                             prime_cond_to_comprare,
                             c('sj', 'prime_cond'),
                             .)
  )) %>% 
  select(problem_size, ttests) %>% 
  unnest(ttests) %>% 
  mutate(
    p_adj = p.adjust(p, method = 'holm'),
    Sig_adj = p.adjust(p, method = 'holm') < 0.05
  )
#> `summarise()` has grouped output by 'sj'. You can override using the `.groups` argument.
#> `summarise()` has grouped output by 'sj'. You can override using the `.groups` argument.
#> `summarise()` has grouped output by 'sj'. You can override using the `.groups` argument.
#> `summarise()` has grouped output by 'sj'. You can override using the `.groups` argument.
#> `summarise()` has grouped output by 'sj'. You can override using the `.groups` argument.
#> `summarise()` has grouped output by 'sj'. You can override using the `.groups` argument.
#> `summarise()` has grouped output by 'sj'. You can override using the `.groups` argument.
#> `summarise()` has grouped output by 'sj'. You can override using the `.groups` argument.
#> `summarise()` has grouped output by 'sj'. You can override using the `.groups` argument.
#> `summarise()` has grouped output by 'sj'. You can override using the `.groups` argument.

# Print the results in csv and txt files
exp1_ttests %>% 
  print_result(., 'exp1_ttests')

# Show the table with the statistics
exp1_ttests %>%
  make_table('T-tests for experiment 1')
T-tests for experiment 1
problem_size var1 var2 mean_var1 mean_var2 mean_diff std_error t df p sig Cohen_d_z Hedges_g_av p_adj Sig_adj
large identity neutral 554.67 597.4 -42.73 10.03 -4.26 27 0.00 TRUE 0.81 0.41 0.00 TRUE
large neigh_con neutral 622.45 597.4 25.05 9.87 2.54 27 0.02 TRUE 0.48 0.23 0.05 FALSE
large neigh_inc neutral 644.85 597.4 47.46 8.69 5.46 27 0.00 TRUE 1.03 0.44 0.00 TRUE
large unrel_con neutral 602.73 597.4 5.33 10.49 0.51 27 0.62 FALSE 0.10 0.05 0.62 FALSE
large unrel_inc neutral 645.46 597.4 48.06 11.99 4.01 27 0.00 TRUE 0.76 0.41 0.00 TRUE
small identity neutral 513.44 550.6 -37.17 8.35 -4.45 27 0.00 TRUE 0.84 0.43 0.00 TRUE
small neigh_con neutral 573.18 550.6 22.58 10.53 2.14 27 0.04 TRUE 0.41 0.25 0.08 FALSE
small neigh_inc neutral 574.57 550.6 23.96 8.52 2.81 27 0.01 TRUE 0.53 0.25 0.04 TRUE
small unrel_con neutral 600.22 550.6 49.62 10.66 4.66 27 0.00 TRUE 0.88 0.48 0.00 TRUE
small unrel_inc neutral 590.44 550.6 39.83 9.77 4.08 27 0.00 TRUE 0.77 0.40 0.00 TRUE

Save plots in a file

ggarrange(prime_plot$exp1_RT_distr)
ggsave(here('figures', 'exp1_RTs_distr.tiff'),
       width = 9,
       height = 5,
       dpi = 150) # or dpi = 300

ggarrange(prime_plot$exp1_RT_distr_bw)
ggsave(here('figures', 'exp1_RTs_distr_bw.tiff'),
       width = 9,
       height = 5,
       dpi = 150) # or dpi = 300

ggarrange(prime_plot$exp1_box)
ggsave(here('figures', 'exp1_RTs.tiff'),
       width = 8,
       height = 6,
       dpi = 150) # or dpi = 300

ggarrange(prime_plot$exp1_bf)
ggsave(here('figures', 'exp1_BF.tiff'),
       width = 8,
       height = 6,
       dpi = 150) # or dpi = 300

session information

xfun::session_info()
#> R version 4.0.5 (2021-03-31)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 19044)
#> 
#> Locale:
#>   LC_COLLATE=English_United Kingdom.1252 
#>   LC_CTYPE=English_United Kingdom.1252   
#>   LC_MONETARY=English_United Kingdom.1252
#>   LC_NUMERIC=C                           
#>   LC_TIME=English_United Kingdom.1252    
#> 
#> Package version:
#>   abind_1.4-5              askpass_1.1              assertthat_0.2.1        
#>   backports_1.2.1          base64enc_0.1.3          BayesFactor_0.9.12-4.2  
#>   BH_1.75.0.0              blob_1.2.1               boot_1.3.27             
#>   broom_0.7.6              bslib_0.2.4              callr_3.6.0             
#>   car_3.0-10               carData_3.0-4            cellranger_1.1.0        
#>   cli_2.4.0                clipr_0.7.1              coda_0.19-4             
#>   colorspace_2.0-0         compiler_4.0.5           conquer_1.0.2           
#>   contfrac_1.1.12          corrplot_0.84            cowplot_1.1.1           
#>   cpp11_0.2.7              crayon_1.4.1             crosstalk_1.1.1         
#>   curl_4.3                 data.table_1.14.0        DBI_1.1.1               
#>   dbplyr_2.1.1             deSolve_1.28             digest_0.6.27           
#>   dplyr_1.0.5              dtplyr_1.1.0             ellipsis_0.3.1          
#>   elliptic_1.4.0           evaluate_0.14            fansi_0.4.2             
#>   farver_2.1.0             forcats_0.5.1            foreign_0.8-81          
#>   fs_1.5.0                 gargle_1.1.0             generics_0.1.0          
#>   ggplot2_3.3.5            ggpubr_0.4.0             ggrepel_0.9.1           
#>   ggridges_0.5.3           ggsci_2.9                ggsignif_0.6.1          
#>   glue_1.4.2               googledrive_1.0.1        googlesheets4_0.3.0     
#>   graphics_4.0.5           grDevices_4.0.5          grid_4.0.5              
#>   gridExtra_2.3            gtable_0.3.0             gtools_3.8.2            
#>   haven_2.3.1              here_1.0.1               highr_0.8               
#>   hms_1.0.0                htmltools_0.5.1.1        htmlwidgets_1.5.3       
#>   httr_1.4.2               hypergeo_1.2.13          ids_1.0.1               
#>   isoband_0.2.4            jquerylib_0.1.3          jsonlite_1.7.2          
#>   kableExtra_1.3.4         knitr_1.33               labeling_0.4.2          
#>   later_1.1.0.1            lattice_0.20-41          lazyeval_0.2.2          
#>   lifecycle_1.0.0          lme4_1.1.26              lubridate_1.7.10        
#>   magrittr_2.0.1           maptools_1.1.1           markdown_1.1            
#>   MASS_7.3.53.1            Matrix_1.3-2             MatrixModels_0.5-0      
#>   matrixStats_0.58.0       methods_4.0.5            mgcv_1.8.34             
#>   mime_0.10                minqa_1.2.4              modelr_0.1.8            
#>   munsell_0.5.0            mvtnorm_1.1-1            nlme_3.1.152            
#>   nloptr_1.2.2.2           nnet_7.3.15              numDeriv_2016.8.1.1     
#>   openssl_1.4.3            openxlsx_4.2.3           parallel_4.0.5          
#>   pbapply_1.4-3            pbkrtest_0.5.1           pillar_1.6.0            
#>   pkgconfig_2.0.3          plotly_4.9.3             plyr_1.8.6              
#>   polynom_1.4.0            prettyunits_1.1.1        processx_3.5.1          
#>   progress_1.2.2           promises_1.2.0.1         ps_1.6.0                
#>   purrr_0.3.4              quantreg_5.85            R6_2.5.0                
#>   rappdirs_0.3.3           RColorBrewer_1.1.2       Rcpp_1.0.6              
#>   RcppArmadillo_0.10.2.2.0 RcppEigen_0.3.3.9.1      readr_1.4.0             
#>   readxl_1.3.1             rematch_1.0.1            rematch2_2.1.2          
#>   reprex_2.0.0             rio_0.5.26               rlang_0.4.10            
#>   rmarkdown_2.7            rprojroot_2.0.2          rstatix_0.7.0           
#>   rstudioapi_0.13          rvest_1.0.0              sass_0.3.1              
#>   scales_1.1.1             selectr_0.4.2            sp_1.4.5                
#>   SparseM_1.81             splines_4.0.5            statmod_1.4.35          
#>   stats_4.0.5              stringi_1.5.3            stringr_1.4.0           
#>   svglite_2.0.0            sys_3.4                  systemfonts_1.0.2       
#>   tibble_3.1.0             tidyr_1.1.3              tidyselect_1.1.0        
#>   tidyverse_1.3.1          tinytex_0.31             tools_4.0.5             
#>   utf8_1.2.1               utils_4.0.5              uuid_0.1.4              
#>   vctrs_0.3.7              viridisLite_0.3.0        webshot_0.5.2           
#>   withr_2.4.1              xfun_0.22                xml2_1.3.2              
#>   yaml_2.2.1               zip_2.1.1